//导入用户构造函数
const {
    User
} = require('../../model/users')

module.exports = async (req, res, next) => {
    //获取用户传递过来的用户id和商品的索引
    let {
        userId,
        index,
        productId
    } = req.body
    //方法一：利用传递过来的索引删除cartList对应索引的数据
    //根据这个用户id查询商品
    // const user = await User.findOne({
    //     userId
    // })
    // if (user) {
         //查询用户成功
         //根据用户传递过来的商品索引删除对应的商品
    //     user.cartList.splice(index, 1)
         //保存设置
    //     user.save((err, doc) => {
    //         if (err) {
    //             res.json({
    //                 status: 400,
    //                 msg: err.message
    //             })
    //         } else {
    //             res.json({
    //                 status: 200,
    //                 msg: '删除成功',
    //                 data: {
    //                     cartList: doc.cartList
    //                 }
    //             })
    //         }
    //     })

    // } else {
    //     //查询用户失败
    //     res.json({
    //         status: 400,
    //         msg: '删除失败',
    //         data: ''
    //     })
    // }


    // 方法二：利用update中的$pull 用法 要删除哪个子文档里面的什么内容，对应就会把该条数据删除
    await User.update({
        userId
    }, {
        $pull: {
            'cartList': {
                'productId': productId //把cartList中的productId与传过来的productId相等的这一条数据删除
            }
        }
    }, (err, doc) => {
        if (err) {
            res.json({
                status: 400,
                msg: err.message
            })
        } else {
            res.json({
                status: 200,
                msg: '删除成功',
                data: {
                    data: doc
                }
            })
        }
    })
}